求解非线性最小二乘(非线性数据拟合)问题

您所在的位置:网站首页 matlab 非线性拟合 求解非线性最小二乘(非线性数据拟合)问题

求解非线性最小二乘(非线性数据拟合)问题

2023-07-21 04:06| 来源: 网络整理| 查看: 265

要最小化其平方和的函数,指定为函数句柄或函数名称。对于 'interior-point' 算法,fun 必须为函数句柄。fun 函数接受数组 x,并返回数组 F,即在 x 处计算的目标函数值。

注意

平方和不应显式得出。您的函数应返回由函数值组成的向量。请参阅示例。

函数 fun 可以指定为文件的函数句柄:

x = lsqnonlin(@myfun,x0)

其中 myfun 是一个 MATLAB® 函数,例如

function F = myfun(x) F = ... % Compute function values at x

fun 也可以是匿名函数的函数句柄。

x = lsqnonlin(@(x)sin(x.*x),x0);

lsqnonlin 以 x0 参数的形状将 x 传递给目标函数。例如,如果 x0 是 5×3 数组,则 lsqnonlin 将 x 以 5×3 数组的形式传递给 fun。

如果雅可比矩阵也可以计算并且 'SpecifyObjectiveGradient' 选项为 true,设置如下

options = optimoptions('lsqnonlin','SpecifyObjectiveGradient',true)

则函数 fun 必须返回第二个输出参数,即在 x 处计算的雅可比值矩阵 J。通过检查 nargout 的值,当仅使用一个输出参数调用 fun 时(在优化算法只需 F 的值而不需要 J 的情况下),该函数可以避免计算 J。

function [F,J] = myfun(x) F = ... % Objective function values at x if nargout > 1 % Two output arguments J = ... % Jacobian of the function evaluated at x end

如果 fun 返回由 m 个分量组成的数组且 x 包含 n 个元素,其中 n 是 x0 的元素数,则雅可比J 是 m×n 矩阵,其中 J(i,j) 是 F(i) 关于 x(j) 的偏导数。(雅可比值 J 是 F 的梯度的转置。)

示例: @(x)cos(x).*exp(-x)

数据类型: char | function_handle | string



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3